This invention relates to the field of computer aided modelling of a virtual reality by means of predefined geometrical elements.
Computer aided modelling of a virtual reality is the task of creating a model of a geometrical object, interpreting the model, manipulating the model, and otherwise handling a model of a geometrical object in a computer system.
From a first point of view, modelling of a virtual reality is an interesting topic in that it makes it possible to visualise ideas before they are actually implemented in the real world. If the virtual reality model is sufficiently easy to modify much time can be saved in the process of developing and refining a geometrical object compared to a situation where the same process should have been carried in the real world. A simple task of painting an object in the real, world may easily take several hours, whereas the computer can apply a new colour to visualise of a model within milliseconds or seconds.
From a second point of view, modelling of a virtual reality is interesting in that it makes it possible to create a model of an object that exists in the real world and via a computer visualise and e.g. manipulate the model in some sense. Thus the model of the object in the real world can be stored for different purposes e.g. for advanced documentation purposes.
Although there exists a huge amount of possible applications for computer aided virtual reality modelling, a special application is to use virtual reality modelling for entertainment or education. From the real world, long before the development of the electronic computer, various types of modelling concepts are known. Especially, concepts using modular or semi-modular concepts were, and are, very popular. Typically, these concepts provide a set of pre-manufactured elements that can be interconnected with each other in some predetermined way according to modules of the pre-manufactured elements. The pre-manufactured elements resembles well-known objects adapted to a specific modelling task. Thus in e.g. building a model of a house the elements may resemble wall bricks, roof tiles, doors, and windows. The object of selecting the elements in this way is that the work involved with the building of a model of a house is reduced significantly compared to a situation where all details of the house is to be defined each time a new model should be made. However, the complete freedom in building a house or another object is traded off for the simplicity of building the model.
This approach of having predefined elements is well known in the art of computer aided virtual reality modelling. Also, the concept of having modular elements that can be interconnected with each other is well known. But when it comes to representation in a computer of such models, the expediency of the concept of having predefined elements and modular systems is not fully accomplished in the prior art.
As long as computers have been used for computer aided design and modelling, the task requiring the largest computational effort has been visualisation of the model, including calculation of how the model should appear. One of the reasons why is that the complexity and refinements of the virtual reality models have been extended to follow the ever recent available computer technology and computationally power.
When it comes to transfer and interchange of data representing a model, the drawbacks of the complexity and refinements of the virtual reality models appear very clearly. Now some type of external unit in the form of a storage unit or a computer communication network is connected to the computer and thus extends the signal path for storing, loading and/or transmitting, receiving a model. Typically, such signal paths have a relatively low bandwidth compared to signal paths within a single computer. Thus an efficient scheme for representing a model is needed.
One scheme for representing a model of a geometrical object is the well-known xe2x80x98Virtual Reality Modelling Languagexe2x80x99 also known as xe2x80x98VRMLxe2x80x99. This scheme is often used on the Internet. xe2x80x98VRMLxe2x80x99 is based on some types of polygons defined by a set of parameters. All models are based on these polygons by specifying the parameters e.g. defining the position of corners of the polygons in a three-dimensional space. It is possible to define the position, orientation, and scale of a group of polygons by means of a common transformation.
By means of this modelling scheme all possible modelling tasks can be modelled as desired because the scheme does not restrict the user in any way. This in fact is also one of the drawbacks of the scheme, because every one of the polygons is supported by an extensive representation. On a computer, this representation comprises numbers of the type Real for each parameter in the model. Further, due to the nature of most modelling paradigms, an overwhelming number of polygons are neededxe2x80x94thus also an overwhelming number of parameters of the type Real are required. Consider e.g. a curved surface, such a surface can, in a very coarse model, be modelled by means of a single polygon, however, if a fine model is required this curved surface must be composed of a number of polygons, at least comprising so many polygons that the surface will appear with sufficient smoothness.
When it comes to manipulation of a VRML model the geometrical description must be extended with a meta-description defining each of the possible manipulations. So, if a VRML model not initially is supplied with such a meta-description no manipulations of that model are possible. This is a result of the completely free modelling scheme.
From different types of commercially marketed software products it is known to constrain elements with regard to their mutual positioning and orientation when they are used in a model. The elements are constrained to positions in a relatively coarse grid system and the elements can have an orientation constrained to 90 degrees steps around three axes in a system of co-ordinates coincident with the relatively coarse grid system.
However, firstly, in these products the representation of the models does not utilise these constraints, and therefore no efficiency regarding storage capacity relative to the complexity of the model is obtained. Secondly, this modelling scheme does not enable a model to move, rotate, or otherwise manipulate a part of a model relative to another part of the model, ie all elements are bound to the grid system.
So, there exists a problem in the prior art that models obtained by computer aided modelling require a tremendous amount of storage capacity, whether the models are constrained in some way or not.
In the prior art there exists various types of compression schemes, however, such compression schemes requires a large block of data to operate on in order to compress the data efficiently. Moreover, such compression schemes requires a relatively large time slot in carrying out compression and decompression. Typically, this is critical when it comes to interactive modelling tasks, comprising transfer of models e.g. via a computer network. Thus there is a need for a representation of geometrical models that is fast to generate and to interpret, and which do not require additional compression schemes.
A first object or the invention is to provide a compact representation of a model of a geometrical object.
A second object of the invention is to provide a compact representation of a model of a geometrical object that allows for modelling of complex objects comprising movable and/or rotatable parts.
A third object of the invention is to provide a model structure and a representation of the model structure that it is possible to generate and interpret very fast.
A fourth object of the invention is to provide a model structure and a representation of the model structure that is expedient for representing objects composed of modular toy building blocks or elements.
A fifth object of the invention is to provide a representation of a model structure that is expedient for being distributed via a computer network, in the sense of relatively low bandwidth requirement and low processing time when the model is subjected to visualisation, is generated, or manipulated.
A sixth object of the invention is to provide a model structure and a representation of the model structure which do not require an additional meta-description of a geometrical object when the model is subjected to manipulation.
According to the invention the objects mentioned in the above paragraphs are fulfilled within the scope of the invention as defined by the claims. Particularly, when a model of a geometrical object comprises: bits in a first data structure encoded to identify a first set of elements from a collection of representations of geometrical shapes for a collection of elements and to represent positions of the elements by means of integer co-ordinates in a first system of co-ordinates; bits in a second data structure encoded to identify a second set of elements from said collection and to represent positions of the elements by means of integer co-ordinates in a second system of co-ordinates; bits in a third data structure encoded to represent a spatial transformation of the second system of co-ordinates relatively to the first system of co-ordinates.
Thereby a very compact representation of a geometrical object is obtained while the model allows for modelling of complex geometrical structures comprising movable parts. In fact the model distinguish between a number of rigid parts and constrains the position of the elements within such rigid parts in order to obtain a compact representation. However, when it is needed ie to represent a spatial interrelationship between two or more of such rigid parts or segments, a non-constrained or less-constrained representation of the interrelationship can be applied. Thereby also providing a relatively flexible model representation.
Due to the integer representation of positions of the elements it is possible to process the model over and over again on a computer without introducing round-off errors within the respective systems of co-ordinates. Thus models comprising a huge amount of elements within a segment is not distorted due to such round-off errors.
Due to the fact that the model only comprises references to the geometrical representations of the elements, the model can be interpreted with a selected set of elements without modifying the model. Thereby a specific graphic format can be selected in order to be interpreted expediently on a specific computer e.g. in the sense of providing sufficiently fast rendering time when the model is subjected to displaying.
Due to the integer constrained representation of the positions of elements within the respective systems of co-ordinates possible positions of the elements are given implicitly, ie rotations, free displacements etc are not possible within a system of co-ordinates.
Since the compact representation of the model is obtained by constraints on the elements, no additional compression is needed and the model structure can thus be generated sequentially and interpreted sequentially by writing/reading a succession of statements used for representing the model.